/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package videorent;

import java.util.ArrayList;
import java.util.GregorianCalendar;

/** Representa a una Temporada de una serie.
 *
 * @author dayi
 */
public class TemporadaSerie extends Audiovisual {

    private int numeroTemporada;
    private ArrayList<String> creadores;
    private int cantidadEpisodios;

    /** Constructor que depende de los datos de audiovisual*/
    public TemporadaSerie(String codigo, int cantidad, String nombre, int numeroTemporada, int ano, ArrayList<String> creadores, ArrayList<String> actores, int cantidadEpisodios, String estatus, GregorianCalendar fechaDev) {
        super(codigo, nombre, ano, estatus, cantidad, actores, fechaDev);
        this.numeroTemporada = numeroTemporada;
        this.creadores = creadores;
        this.cantidadEpisodios = cantidadEpisodios;
    }

    /** Constructor que depende de los datos de audiovisual*/
    public TemporadaSerie(String codigo, int cantidad, String nombre, int numeroTemporada, int ano, ArrayList<String> creadores, ArrayList<String> actores, int cantidadEpisodios, String estatus) {
        super(codigo, nombre, ano, estatus, cantidad, actores);
        this.numeroTemporada = numeroTemporada;
        this.creadores = creadores;
        this.cantidadEpisodios = cantidadEpisodios;
    }

    /** Retorna la cantidad de episodios
     * @return cantidad de episodios
     */
    public int getCantidadEpisodios() {
        return cantidadEpisodios;
    }

    /** Asigna la cantidad de episodios
     * @param cantidadEpisodios cantidad de episodios
     */
    public void setCantidadEpisodios(int cantidadEpisodios) {
        this.cantidadEpisodios = cantidadEpisodios;
    }

    /** Retorna la lista de los creadores
     * @return lista de creadores
     */
    public ArrayList<String> getCreadores() {
        return (ArrayList<String>) creadores.clone();
    }

    /** Asigna la lista de los creadores
     * @param creadores  lista de creadores
     */
    public void setCreadores(ArrayList<String> creadores) {
        this.creadores = creadores;
    }

    /** Retorna el numero de la temporada
     * @return numero de la temporada
     */
    public int getNumeroTemporada() {
        return numeroTemporada;
    }

    /** Asigna el numero de la temporada
     * @param numeroTemporada numero de la temporada
     */
    public void setNumeroTemporada(int numeroTemporada) {
        this.numeroTemporada = numeroTemporada;
    }

    // ATENCION
    // Pendiente con obtenerDatos* arreglar luego de responder la duda
    /** Obtiene los datos de una temporada en forma de string
     * @return Datos de la temporada.
     */
    public String obtenerDatos() {
        String linea = "";
        linea += this.getCantidad() + " & ";
        linea += this.getNombre() + " & ";
        linea += this.getNumeroTemporada() + " & ";
        linea += this.getAno() + " & ";

        String creadoreS = this.getCreadores().toString();
        String atoresS = this.getActores().toString();

        linea += creadoreS.substring(1, creadoreS.length() - 1) + " & ";
        linea += atoresS.substring(1, atoresS.length() - 1) + " & ";

        linea += this.getCantidadEpisodios();

        GregorianCalendar fd = this.getFechaDevolucion();
        if (fd != null) {
            linea += " & " + fd.get(GregorianCalendar.DAY_OF_MONTH) + "/" + fd.get(GregorianCalendar.MONTH) + "/" + fd.get(GregorianCalendar.YEAR);
        }

        return linea;
    }
}
